﻿#region NamesSpace
using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using MS.InformationManagement.Presenter.GenerarSolicitudPrestamos;
using MS.InformationManagement.DAL.DocumentCenter;
using MS.InformationManagement.Support;

#endregion

namespace MS.InformationManagement.WP.Layouts.MS.InformationManagement.WP
{
    public partial class SolicitudPrestamos : LayoutsPageBase, IGenerarSolicitudPrestamosView
    {
        #region fields
        GenerarSolicitudPrestamosPresenter _presenter;
        #endregion

        #region Properties

        public int IdItem
        {
            get
            {
                if (string.IsNullOrEmpty(Page.Request.QueryString["ID"]))
                    return 0;
                else
                    return int.Parse(Page.Request.QueryString["ID"]);
            }
        }
        public Guid IdList
        {
            get
            {
                return new Guid(Page.Request.QueryString["IdList"]);
            }
        }
        public Radicado CurrentRadicado { get; set; }
        public bool ResultSolicitud { get; set; }
        public string IdValueRadicado { get; set; }
        public string Observaciones { get; set; }
        public TipoDePrestamo tipoPrestamo { get; set; }

        #endregion

        #region Form Events

        protected void Page_Load(object sender, EventArgs e)
        {
            _presenter = new GenerarSolicitudPrestamosPresenter(this);
            _presenter.GetCurrentRadicado();
        }

        protected void Action_Enviar(object sender, EventArgs e)
        {

            switch (rblTipoPrestamo.SelectedValue)
            {
                case "1":
                    tipoPrestamo = TipoDePrestamo.Radicado;
                    IdValueRadicado = txtIdRadicado.Text;
                    break;
                case "2":
                    tipoPrestamo = TipoDePrestamo.Expediente;
                    IdValueRadicado = txtExpediente.Text;
                    break;
                default:
                    tipoPrestamo = TipoDePrestamo.Radicado;
                    IdValueRadicado = null;
                    break;
                    
            }
            Observaciones = txtObservaciones.Text;
            _presenter.GenerarSolicitud();
        }

        protected void Action_Cancelar(object sender, EventArgs e)
        {
            this.CloseWindow();
        }

        #endregion

        #region Implemented Methods

        public void SuccedGetRadicado()
        {
            if (CurrentRadicado != null)
            {
                divControls.Visible = true;
                txtIdRadicado.Text = CurrentRadicado.DocumentIDValue;
                txtExpediente.Text = CurrentRadicado.NúmeroExpediente;
                txtFechaCreacion.Text = CurrentRadicado.Created.ToShortDateString();
                txtASunto.Text = CurrentRadicado.Asunto;
                txtTipoDocumento.Text = CurrentRadicado.TipoDocumento;
                txtRemitente.Text = CurrentRadicado.RemitenteDestinatario;
                CleanItem();
            }
            else
            {
                divControls.Visible = false;
                
                this._ShowAlertAndClose("El radicado no esta disponible para prestar.");
            }
        }

        private void CleanItem()
        {
            if (string.IsNullOrEmpty(txtExpediente.Text.Trim()))
            {
                rblTipoPrestamo.Items.Remove(rblTipoPrestamo.Items.FindByValue("2"));
            }
        }

        public void SuccedSolicitud()
        {
            if (ResultSolicitud == true)
            {
                this._ShowAlertAndClose("La solicitud ha sido exitosa");
            }
            else
            {
                this._ShowAlertAndClose("Ha ocurrido un error en su solicitud");
            }
        }

        #endregion
    }
}
